#
# Copyright (c) 2003-2022 Christopher M. Kohlhoff (chris at kohlhoff dot com)
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#

import os ;
import feature ;

lib ssl ;
lib crypto ;

lib socket ; # SOLARIS
lib nsl ; # SOLARIS
lib ws2_32 ; # NT
lib mswsock ; # NT
lib ipv6 ; # HPUX
lib network ; # HAIKU

local USE_SELECT =
  <define>BOOST_ASIO_DISABLE_EPOLL
  <define>BOOST_ASIO_DISABLE_KQUEUE
  <define>BOOST_ASIO_DISABLE_IOCP
  ;

project
  : requirements
    <library>/boost/date_time//boost_date_time
    <library>/boost/system//boost_system
    <library>/boost/chrono//boost_chrono
    <define>BOOST_ALL_NO_LIB=1
    <threading>multi
    <target-os>solaris:<library>socket
    <target-os>solaris:<library>nsl
    <target-os>windows:<define>_WIN32_WINNT=0x0501
    <target-os>windows,<toolset>gcc:<library>ws2_32
    <target-os>windows,<toolset>gcc:<library>mswsock
    <target-os>windows,<toolset>gcc-cygwin:<define>__USE_W32_SOCKETS
    <target-os>hpux,<toolset>gcc:<define>_XOPEN_SOURCE_EXTENDED
    <target-os>hpux:<library>ipv6
    <target-os>haiku:<library>network
  ;

test-suite "asio-ssl" :
  [ compile context_base.cpp ]
  [ compile context_base.cpp : $(USE_SELECT) : context_base_select ]
  [ compile context.cpp ]
  [ compile context.cpp : $(USE_SELECT) : context_select ]
  [ compile error.cpp ]
  [ compile error.cpp : $(USE_SELECT) : error_select ]
  [ compile host_name_verification.cpp ]
  [ compile host_name_verification.cpp : $(USE_SELECT) : host_name_verification_select ]
  [ compile rfc2818_verification.cpp ]
  [ compile rfc2818_verification.cpp : $(USE_SELECT) : rfc2818_verification_select ]
  [ compile stream_base.cpp ]
  [ compile stream_base.cpp : $(USE_SELECT) : stream_base_select ]
  [ compile stream.cpp ]
  [ compile stream.cpp : $(USE_SELECT) : stream_select ]
  ;
